#include "bilink2.h"
#include <stdio.h>
#include <stdlib.h>

/**
 * 前序遍历二叉树
 * @param bintree  t 二叉树
 * @return void
 */
void preordder(bintree t)
{
    if (t != NULL)
    {
        printf("%c", t->data);
        preord(t->lchild);
        preord(t->rchild);
    }
}

/**
 * 中序遍历二叉树
 * @param bintree  t 二叉树
 * @return void
 */
void inordder(bintree t)
{
    if (t)
    {
        inord(t->lchild);
        printf("%c", t->data);
        inord(t->rchild);
    }
}

/**
 * 后序遍历二叉树
 * @param bintree  t 二叉树
 * @return void
 */
void postordder(bintree t)
{
    if (t)
    {
        postord(t->lchild);
        postord(t->rchild);
        printf("%c", t->data);
    }
}

/**
 * 二叉树的创建算法
 * @return bintree
 */
bintree createbintree() {
    datatype ch;
    bintree t;
    scanf("%c", &ch);
    if (ch == '#')
    {
        t = NULL;
    }
    else
    {
        t = (bintree)malloc(sizeof(bintnode));
        t->data = ch;
        t->lchild = createbintree();
        t->rchild = createbintree();
    }
    return t;
}
